<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width initial-scale=1" />
    <title>README</title>
    <style type="text/css">
      html {
        overflow-x: initial !important;
      }
      :root {
        --bg-color: #ffffff;
        --text-color: #333333;
        --select-text-bg-color: #b5d6fc;
        --select-text-font-color: auto;
        --monospace: 'Lucida Console', Consolas, 'Courier', monospace;
      }
      html {
        font-size: 14px;
        background-color: var(--bg-color);
        color: var(--text-color);
        font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
        -webkit-font-smoothing: antialiased;
      }
      body {
        margin: 0px;
        padding: 0px;
        height: auto;
        bottom: 0px;
        top: 0px;
        left: 0px;
        right: 0px;
        font-size: 1rem;
        line-height: 1.42857;
        overflow-x: hidden;
        background: inherit;
        tab-size: 4;
      }
      iframe {
        margin: auto;
      }
      a.url {
        word-break: break-all;
      }
      a:active,
      a:hover {
        outline: 0px;
      }
      .in-text-selection,
      ::selection {
        text-shadow: none;
        background: var(--select-text-bg-color);
        color: var(--select-text-font-color);
      }
      #write {
        margin: 0px auto;
        height: auto;
        width: inherit;
        word-break: normal;
        overflow-wrap: break-word;
        position: relative;
        white-space: normal;
        overflow-x: visible;
        padding-top: 40px;
      }
      #write.first-line-indent p {
        text-indent: 2em;
      }
      #write.first-line-indent li p,
      #write.first-line-indent p * {
        text-indent: 0px;
      }
      #write.first-line-indent li {
        margin-left: 2em;
      }
      .for-image #write {
        padding-left: 8px;
        padding-right: 8px;
      }
      body.typora-export {
        padding-left: 30px;
        padding-right: 30px;
      }
      .typora-export .footnote-line,
      .typora-export li,
      .typora-export p {
        white-space: pre-wrap;
      }
      @media screen and (max-width: 500px) {
        body.typora-export {
          padding-left: 0px;
          padding-right: 0px;
        }
        #write {
          padding-left: 20px;
          padding-right: 20px;
        }
        .CodeMirror-sizer {
          margin-left: 0px !important;
        }
        .CodeMirror-gutters {
          display: none !important;
        }
      }
      #write li > figure:last-child {
        margin-bottom: 0.5rem;
      }
      #write ol,
      #write ul {
        position: relative;
      }
      img {
        max-width: 100%;
        vertical-align: middle;
      }
      button,
      input,
      select,
      textarea {
        color: inherit;
        font: inherit;
      }
      input[type='checkbox'],
      input[type='radio'] {
        line-height: normal;
        padding: 0px;
      }
      *,
      ::after,
      ::before {
        box-sizing: border-box;
      }
      #write h1,
      #write h2,
      #write h3,
      #write h4,
      #write h5,
      #write h6,
      #write p,
      #write pre {
        width: inherit;
      }
      #write h1,
      #write h2,
      #write h3,
      #write h4,
      #write h5,
      #write h6,
      #write p {
        position: relative;
      }
      p {
        line-height: inherit;
      }
      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        break-after: avoid-page;
        break-inside: avoid;
        orphans: 4;
      }
      p {
        orphans: 4;
      }
      h1 {
        font-size: 2rem;
      }
      h2 {
        font-size: 1.8rem;
      }
      h3 {
        font-size: 1.6rem;
      }
      h4 {
        font-size: 1.4rem;
      }
      h5 {
        font-size: 1.2rem;
      }
      h6 {
        font-size: 1rem;
      }
      .md-math-block,
      .md-rawblock,
      h1,
      h2,
      h3,
      h4,
      h5,
      h6,
      p {
        margin-top: 1rem;
        margin-bottom: 1rem;
      }
      .hidden {
        display: none;
      }
      .md-blockmeta {
        color: rgb(204, 204, 204);
        font-weight: 700;
        font-style: italic;
      }
      a {
        cursor: pointer;
      }
      sup.md-footnote {
        padding: 2px 4px;
        background-color: rgba(238, 238, 238, 0.7);
        color: rgb(85, 85, 85);
        border-radius: 4px;
        cursor: pointer;
      }
      sup.md-footnote a,
      sup.md-footnote a:hover {
        color: inherit;
        text-transform: inherit;
        text-decoration: inherit;
      }
      #write input[type='checkbox'] {
        cursor: pointer;
        width: inherit;
        height: inherit;
      }
      figure {
        overflow-x: auto;
        margin: 1.2em 0px;
        max-width: calc(100% + 16px);
        padding: 0px;
      }
      figure > table {
        margin: 0px !important;
      }
      tr {
        break-inside: avoid;
        break-after: auto;
      }
      thead {
        display: table-header-group;
      }
      table {
        border-collapse: collapse;
        border-spacing: 0px;
        width: 100%;
        overflow: auto;
        break-inside: auto;
        text-align: left;
      }
      table.md-table td {
        min-width: 32px;
      }
      .CodeMirror-gutters {
        border-right: 0px;
        background-color: inherit;
      }
      .CodeMirror-linenumber {
        user-select: none;
      }
      .CodeMirror {
        text-align: left;
      }
      .CodeMirror-placeholder {
        opacity: 0.3;
      }
      .CodeMirror pre {
        padding: 0px 4px;
      }
      .CodeMirror-lines {
        padding: 0px;
      }
      div.hr:focus {
        cursor: none;
      }
      #write pre {
        white-space: pre-wrap;
      }
      #write.fences-no-line-wrapping pre {
        white-space: pre;
      }
      #write pre.ty-contain-cm {
        white-space: normal;
      }
      .CodeMirror-gutters {
        margin-right: 4px;
      }
      .md-fences {
        font-size: 0.9rem;
        display: block;
        break-inside: avoid;
        text-align: left;
        overflow: visible;
        white-space: pre;
        background: inherit;
        position: relative !important;
      }
      .md-diagram-panel {
        width: 100%;
        margin-top: 10px;
        text-align: center;
        padding-top: 0px;
        padding-bottom: 8px;
        overflow-x: auto;
      }
      #write .md-fences.mock-cm {
        white-space: pre-wrap;
      }
      .md-fences.md-fences-with-lineno {
        padding-left: 0px;
      }
      #write.fences-no-line-wrapping .md-fences.mock-cm {
        white-space: pre;
        overflow-x: auto;
      }
      .md-fences.mock-cm.md-fences-with-lineno {
        padding-left: 8px;
      }
      .CodeMirror-line,
      twitterwidget {
        break-inside: avoid;
      }
      .footnotes {
        opacity: 0.8;
        font-size: 0.9rem;
        margin-top: 1em;
        margin-bottom: 1em;
      }
      .footnotes + .footnotes {
        margin-top: 0px;
      }
      .md-reset {
        margin: 0px;
        padding: 0px;
        border: 0px;
        outline: 0px;
        vertical-align: top;
        background: 0px 0px;
        text-decoration: none;
        text-shadow: none;
        float: none;
        position: static;
        width: auto;
        height: auto;
        white-space: nowrap;
        cursor: inherit;
        -webkit-tap-highlight-color: transparent;
        line-height: normal;
        font-weight: 400;
        text-align: left;
        box-sizing: content-box;
        direction: ltr;
      }
      li div {
        padding-top: 0px;
      }
      blockquote {
        margin: 1rem 0px;
      }
      li .mathjax-block,
      li p {
        margin: 0.5rem 0px;
      }
      li {
        margin: 0px;
        position: relative;
      }
      blockquote > :last-child {
        margin-bottom: 0px;
      }
      blockquote > :first-child,
      li > :first-child {
        margin-top: 0px;
      }
      .footnotes-area {
        color: rgb(136, 136, 136);
        margin-top: 0.714rem;
        padding-bottom: 0.143rem;
        white-space: normal;
      }
      #write .footnote-line {
        white-space: pre-wrap;
      }
      @media print {
        body,
        html {
          border: 1px solid transparent;
          height: 99%;
          break-after: avoid;
          break-before: avoid;
          font-variant-ligatures: no-common-ligatures;
        }
        #write {
          margin-top: 0px;
          padding-top: 0px;
          border-color: transparent !important;
        }
        .typora-export * {
          -webkit-print-color-adjust: exact;
        }
        html.blink-to-pdf {
          font-size: 13px;
        }
        .typora-export #write {
          padding-left: 32px;
          padding-right: 32px;
          padding-bottom: 0px;
          break-after: avoid;
        }
        .typora-export #write::after {
          height: 0px;
        }
      }
      .footnote-line {
        margin-top: 0.714em;
        font-size: 0.7em;
      }
      a img,
      img a {
        cursor: pointer;
      }
      pre.md-meta-block {
        font-size: 0.8rem;
        min-height: 0.8rem;
        white-space: pre-wrap;
        background: rgb(204, 204, 204);
        display: block;
        overflow-x: hidden;
      }
      p > .md-image:only-child:not(.md-img-error) img,
      p > img:only-child {
        display: block;
        margin: auto;
      }
      #write.first-line-indent p > .md-image:only-child:not(.md-img-error) img {
        left: -2em;
        position: relative;
      }
      p > .md-image:only-child {
        display: inline-block;
        width: 100%;
      }
      #write .MathJax_Display {
        margin: 0.8em 0px 0px;
      }
      .md-math-block {
        width: 100%;
      }
      .md-math-block:not(:empty)::after {
        display: none;
      }
      [contenteditable='true']:active,
      [contenteditable='true']:focus,
      [contenteditable='false']:active,
      [contenteditable='false']:focus {
        outline: 0px;
        box-shadow: none;
      }
      .md-task-list-item {
        position: relative;
        list-style-type: none;
      }
      .task-list-item.md-task-list-item {
        padding-left: 0px;
      }
      .md-task-list-item > input {
        position: absolute;
        top: 0px;
        left: 0px;
        margin-left: -1.2em;
        margin-top: calc(1em - 10px);
        border: none;
      }
      .math {
        font-size: 1rem;
      }
      .md-toc {
        min-height: 3.58rem;
        position: relative;
        font-size: 0.9rem;
        border-radius: 10px;
      }
      .md-toc-content {
        position: relative;
        margin-left: 0px;
      }
      .md-toc-content::after,
      .md-toc::after {
        display: none;
      }
      .md-toc-item {
        display: block;
        color: rgb(65, 131, 196);
      }
      .md-toc-item a {
        text-decoration: none;
      }
      .md-toc-inner:hover {
        text-decoration: underline;
      }
      .md-toc-inner {
        display: inline-block;
        cursor: pointer;
      }
      .md-toc-h1 .md-toc-inner {
        margin-left: 0px;
        font-weight: 700;
      }
      .md-toc-h2 .md-toc-inner {
        margin-left: 2em;
      }
      .md-toc-h3 .md-toc-inner {
        margin-left: 4em;
      }
      .md-toc-h4 .md-toc-inner {
        margin-left: 6em;
      }
      .md-toc-h5 .md-toc-inner {
        margin-left: 8em;
      }
      .md-toc-h6 .md-toc-inner {
        margin-left: 10em;
      }
      @media screen and (max-width: 48em) {
        .md-toc-h3 .md-toc-inner {
          margin-left: 3.5em;
        }
        .md-toc-h4 .md-toc-inner {
          margin-left: 5em;
        }
        .md-toc-h5 .md-toc-inner {
          margin-left: 6.5em;
        }
        .md-toc-h6 .md-toc-inner {
          margin-left: 8em;
        }
      }
      a.md-toc-inner {
        font-size: inherit;
        font-style: inherit;
        font-weight: inherit;
        line-height: inherit;
      }
      .footnote-line a:not(.reversefootnote) {
        color: inherit;
      }
      .md-attr {
        display: none;
      }
      .md-fn-count::after {
        content: '.';
      }
      code,
      pre,
      samp,
      tt {
        font-family: var(--monospace);
      }
      kbd {
        margin: 0px 0.1em;
        padding: 0.1em 0.6em;
        font-size: 0.8em;
        color: rgb(36, 39, 41);
        background: rgb(255, 255, 255);
        border: 1px solid rgb(173, 179, 185);
        border-radius: 3px;
        box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px,
          rgb(255, 255, 255) 0px 0px 0px 2px inset;
        white-space: nowrap;
        vertical-align: middle;
      }
      .md-comment {
        color: rgb(162, 127, 3);
        opacity: 0.8;
        font-family: var(--monospace);
      }
      code {
        text-align: left;
        vertical-align: initial;
      }
      a.md-print-anchor {
        white-space: pre !important;
        border-width: initial !important;
        border-style: none !important;
        border-color: initial !important;
        display: inline-block !important;
        position: absolute !important;
        width: 1px !important;
        right: 0px !important;
        outline: 0px !important;
        background: 0px 0px !important;
        text-decoration: initial !important;
        text-shadow: initial !important;
      }
      .md-inline-math .MathJax_SVG .noError {
        display: none !important;
      }
      .html-for-mac .inline-math-svg .MathJax_SVG {
        vertical-align: 0.2px;
      }
      .md-math-block .MathJax_SVG_Display {
        text-align: center;
        margin: 0px;
        position: relative;
        text-indent: 0px;
        max-width: none;
        max-height: none;
        min-height: 0px;
        min-width: 100%;
        width: auto;
        overflow-y: hidden;
        display: block !important;
      }
      .MathJax_SVG_Display,
      .md-inline-math .MathJax_SVG_Display {
        width: auto;
        margin: inherit;
        display: inline-block !important;
      }
      .MathJax_SVG .MJX-monospace {
        font-family: var(--monospace);
      }
      .MathJax_SVG .MJX-sans-serif {
        font-family: sans-serif;
      }
      .MathJax_SVG {
        display: inline;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        zoom: 90%;
        text-indent: 0px;
        text-align: left;
        text-transform: none;
        letter-spacing: normal;
        word-spacing: normal;
        overflow-wrap: normal;
        white-space: nowrap;
        float: none;
        direction: ltr;
        max-width: none;
        max-height: none;
        min-width: 0px;
        min-height: 0px;
        border: 0px;
        padding: 0px;
        margin: 0px;
      }
      .MathJax_SVG * {
        transition: none 0s ease 0s;
      }
      .MathJax_SVG_Display svg {
        vertical-align: middle !important;
        margin-bottom: 0px !important;
        margin-top: 0px !important;
      }
      .os-windows.monocolor-emoji .md-emoji {
        font-family: 'Segoe UI Symbol', sans-serif;
      }
      .md-diagram-panel > svg {
        max-width: 100%;
      }
      [lang='flow'] svg,
      [lang='mermaid'] svg {
        max-width: 100%;
        height: auto;
      }
      [lang='mermaid'] .node text {
        font-size: 1rem;
      }
      table tr th {
        border-bottom: 0px;
      }
      video {
        max-width: 100%;
        display: block;
        margin: 0px auto;
      }
      iframe {
        max-width: 100%;
        width: 100%;
        border: none;
      }
      .highlight td,
      .highlight tr {
        border: 0px;
      }
      svg[id^='mermaidChart'] {
        line-height: 1em;
      }
      mark {
        background: rgb(255, 255, 0);
        color: rgb(0, 0, 0);
      }
      .md-html-inline .md-plain,
      .md-html-inline strong,
      mark .md-inline-math,
      mark strong {
        color: inherit;
      }
      mark .md-meta {
        color: rgb(0, 0, 0);
        opacity: 0.3 !important;
      }

      .CodeMirror {
        height: auto;
      }
      .CodeMirror.cm-s-inner {
        background: inherit;
      }
      .CodeMirror-scroll {
        overflow: auto hidden;
        z-index: 3;
      }
      .CodeMirror-gutter-filler,
      .CodeMirror-scrollbar-filler {
        background-color: rgb(255, 255, 255);
      }
      .CodeMirror-gutters {
        border-right: 1px solid rgb(221, 221, 221);
        background: inherit;
        white-space: nowrap;
      }
      .CodeMirror-linenumber {
        padding: 0px 3px 0px 5px;
        text-align: right;
        color: rgb(153, 153, 153);
      }
      .cm-s-inner .cm-keyword {
        color: rgb(119, 0, 136);
      }
      .cm-s-inner .cm-atom,
      .cm-s-inner.cm-atom {
        color: rgb(34, 17, 153);
      }
      .cm-s-inner .cm-number {
        color: rgb(17, 102, 68);
      }
      .cm-s-inner .cm-def {
        color: rgb(0, 0, 255);
      }
      .cm-s-inner .cm-variable {
        color: rgb(0, 0, 0);
      }
      .cm-s-inner .cm-variable-2 {
        color: rgb(0, 85, 170);
      }
      .cm-s-inner .cm-variable-3 {
        color: rgb(0, 136, 85);
      }
      .cm-s-inner .cm-string {
        color: rgb(170, 17, 17);
      }
      .cm-s-inner .cm-property {
        color: rgb(0, 0, 0);
      }
      .cm-s-inner .cm-operator {
        color: rgb(152, 26, 26);
      }
      .cm-s-inner .cm-comment,
      .cm-s-inner.cm-comment {
        color: rgb(170, 85, 0);
      }
      .cm-s-inner .cm-string-2 {
        color: rgb(255, 85, 0);
      }
      .cm-s-inner .cm-meta {
        color: rgb(85, 85, 85);
      }
      .cm-s-inner .cm-qualifier {
        color: rgb(85, 85, 85);
      }
      .cm-s-inner .cm-builtin {
        color: rgb(51, 0, 170);
      }
      .cm-s-inner .cm-bracket {
        color: rgb(153, 153, 119);
      }
      .cm-s-inner .cm-tag {
        color: rgb(17, 119, 0);
      }
      .cm-s-inner .cm-attribute {
        color: rgb(0, 0, 204);
      }
      .cm-s-inner .cm-header,
      .cm-s-inner.cm-header {
        color: rgb(0, 0, 255);
      }
      .cm-s-inner .cm-quote,
      .cm-s-inner.cm-quote {
        color: rgb(0, 153, 0);
      }
      .cm-s-inner .cm-hr,
      .cm-s-inner.cm-hr {
        color: rgb(153, 153, 153);
      }
      .cm-s-inner .cm-link,
      .cm-s-inner.cm-link {
        color: rgb(0, 0, 204);
      }
      .cm-negative {
        color: rgb(221, 68, 68);
      }
      .cm-positive {
        color: rgb(34, 153, 34);
      }
      .cm-header,
      .cm-strong {
        font-weight: 700;
      }
      .cm-del {
        text-decoration: line-through;
      }
      .cm-em {
        font-style: italic;
      }
      .cm-link {
        text-decoration: underline;
      }
      .cm-error {
        color: red;
      }
      .cm-invalidchar {
        color: red;
      }
      .cm-constant {
        color: rgb(38, 139, 210);
      }
      .cm-defined {
        color: rgb(181, 137, 0);
      }
      div.CodeMirror span.CodeMirror-matchingbracket {
        color: rgb(0, 255, 0);
      }
      div.CodeMirror span.CodeMirror-nonmatchingbracket {
        color: rgb(255, 34, 34);
      }
      .cm-s-inner .CodeMirror-activeline-background {
        background: inherit;
      }
      .CodeMirror {
        position: relative;
        overflow: hidden;
      }
      .CodeMirror-scroll {
        height: 100%;
        outline: 0px;
        position: relative;
        box-sizing: content-box;
        background: inherit;
      }
      .CodeMirror-sizer {
        position: relative;
      }
      .CodeMirror-gutter-filler,
      .CodeMirror-hscrollbar,
      .CodeMirror-scrollbar-filler,
      .CodeMirror-vscrollbar {
        position: absolute;
        z-index: 6;
        display: none;
      }
      .CodeMirror-vscrollbar {
        right: 0px;
        top: 0px;
        overflow: hidden;
      }
      .CodeMirror-hscrollbar {
        bottom: 0px;
        left: 0px;
        overflow: hidden;
      }
      .CodeMirror-scrollbar-filler {
        right: 0px;
        bottom: 0px;
      }
      .CodeMirror-gutter-filler {
        left: 0px;
        bottom: 0px;
      }
      .CodeMirror-gutters {
        position: absolute;
        left: 0px;
        top: 0px;
        padding-bottom: 30px;
        z-index: 3;
      }
      .CodeMirror-gutter {
        white-space: normal;
        height: 100%;
        box-sizing: content-box;
        padding-bottom: 30px;
        margin-bottom: -32px;
        display: inline-block;
      }
      .CodeMirror-gutter-wrapper {
        position: absolute;
        z-index: 4;
        background: 0px 0px !important;
        border: none !important;
      }
      .CodeMirror-gutter-background {
        position: absolute;
        top: 0px;
        bottom: 0px;
        z-index: 4;
      }
      .CodeMirror-gutter-elt {
        position: absolute;
        cursor: default;
        z-index: 4;
      }
      .CodeMirror-lines {
        cursor: text;
      }
      .CodeMirror pre {
        border-radius: 0px;
        border-width: 0px;
        background: 0px 0px;
        font-family: inherit;
        font-size: inherit;
        margin: 0px;
        white-space: pre;
        overflow-wrap: normal;
        color: inherit;
        z-index: 2;
        position: relative;
        overflow: visible;
      }
      .CodeMirror-wrap pre {
        overflow-wrap: break-word;
        white-space: pre-wrap;
        word-break: normal;
      }
      .CodeMirror-code pre {
        border-right: 30px solid transparent;
        width: fit-content;
      }
      .CodeMirror-wrap .CodeMirror-code pre {
        border-right: none;
        width: auto;
      }
      .CodeMirror-linebackground {
        position: absolute;
        left: 0px;
        right: 0px;
        top: 0px;
        bottom: 0px;
        z-index: 0;
      }
      .CodeMirror-linewidget {
        position: relative;
        z-index: 2;
        overflow: auto;
      }
      .CodeMirror-wrap .CodeMirror-scroll {
        overflow-x: hidden;
      }
      .CodeMirror-measure {
        position: absolute;
        width: 100%;
        height: 0px;
        overflow: hidden;
        visibility: hidden;
      }
      .CodeMirror-measure pre {
        position: static;
      }
      .CodeMirror div.CodeMirror-cursor {
        position: absolute;
        visibility: hidden;
        border-right: none;
        width: 0px;
      }
      .CodeMirror div.CodeMirror-cursor {
        visibility: hidden;
      }
      .CodeMirror-focused div.CodeMirror-cursor {
        visibility: inherit;
      }
      .cm-searching {
        background: rgba(255, 255, 0, 0.4);
      }
      @media print {
        .CodeMirror div.CodeMirror-cursor {
          visibility: hidden;
        }
      }

      html {
        font-size: 19px;
      }

      html,
      body {
        margin: auto;
        background: #fefefe;
      }
      body {
        font-family: 'Vollkorn', Palatino, Times;
        color: #333;
        line-height: 1.4;
        text-align: justify;
      }

      #write {
        max-width: 960px;
        margin: 0 auto;
        margin-bottom: 2em;
        line-height: 1.53;
        padding-top: 40px;
      }

      @media only screen and (min-width: 1400px) {
        #write {
          max-width: 1100px;
        }
      }

      /* Typography
-------------------------------------------------------- */

      #write > h1:first-child,
      h1 {
        margin-top: 1.6em;
        font-weight: normal;
      }

      h1 {
        font-size: 3em;
      }

      h2 {
        margin-top: 2em;
        font-weight: normal;
      }

      h3 {
        font-weight: normal;
        font-style: italic;
        margin-top: 3em;
      }

      h1,
      h2,
      h3 {
        text-align: center;
      }

      h2:after {
        border-bottom: 1px solid #2f2f2f;
        content: '';
        width: 100px;
        display: block;
        margin: 0 auto;
        height: 1px;
      }

      h1 + h2,
      h2 + h3 {
        margin-top: 0.83em;
      }

      p,
      .mathjax-block {
        margin-top: 0;
        -webkit-hypens: auto;
        -moz-hypens: auto;
        hyphens: auto;
      }
      ul {
        list-style: square;
        padding-left: 1.2em;
      }
      ol {
        padding-left: 1.2em;
      }
      blockquote {
        margin-left: 1em;
        padding-left: 1em;
        border-left: 1px solid #ddd;
      }
      code,
      pre {
        font-family: 'Consolas', 'Menlo', 'Monaco', monospace, serif;
        font-size: 0.9em;
        background: white;
      }
      .md-fences {
        margin-left: 1em;
        padding-left: 1em;
        border: 1px solid #ddd;
        padding-bottom: 8px;
        padding-top: 6px;
        margin-bottom: 1.5em;
      }

      a {
        color: #2484c1;
        text-decoration: none;
      }
      a:hover {
        text-decoration: underline;
      }
      a img {
        border: none;
      }
      h1 a,
      h1 a:hover {
        color: #333;
        text-decoration: none;
      }
      hr {
        color: #ddd;
        height: 1px;
        margin: 2em 0;
        border-top: solid 1px #ddd;
        border-bottom: none;
        border-left: 0;
        border-right: 0;
      }
      .ty-table-edit {
        background: #ededed;
        padding-top: 4px;
      }
      table {
        margin-bottom: 1.333333rem;
      }
      table th,
      table td {
        padding: 8px;
        line-height: 1.333333rem;
        vertical-align: top;
        border-top: 1px solid #ddd;
      }
      table th {
        font-weight: bold;
      }
      table thead th {
        vertical-align: bottom;
      }
      table caption + thead tr:first-child th,
      table caption + thead tr:first-child td,
      table colgroup + thead tr:first-child th,
      table colgroup + thead tr:first-child td,
      table thead:first-child tr:first-child th,
      table thead:first-child tr:first-child td {
        border-top: 0;
      }
      table tbody + tbody {
        border-top: 2px solid #ddd;
      }

      .task-list {
        padding: 0;
      }

      .md-task-list-item {
        padding-left: 1.6rem;
      }

      .md-task-list-item > input:before {
        content: '\221A';
        display: inline-block;
        width: 1.33333333rem;
        height: 1.6rem;
        vertical-align: middle;
        text-align: center;
        color: #ddd;
        background-color: #fefefe;
      }

      .md-task-list-item > input:checked:before,
      .md-task-list-item > input[checked]:before {
        color: inherit;
      }
      .md-tag {
        color: inherit;
        font: inherit;
      }
      #write pre.md-meta-block {
        min-height: 35px;
        padding: 0.5em 1em;
      }
      #write pre.md-meta-block {
        white-space: pre;
        background: #f8f8f8;
        border: 0px;
        color: #999;

        width: 100vw;
        max-width: calc(100% + 60px);
        margin-left: -30px;
        border-left: 30px #f8f8f8 solid;
        border-right: 30px #f8f8f8 solid;

        margin-bottom: 2em;
        margin-top: -1.3333333333333rem;
        padding-top: 26px;
        padding-bottom: 10px;
        line-height: 1.8em;
        font-size: 0.9em;
        font-size: 0.76em;
        padding-left: 0;
      }
      .md-img-error.md-image > .md-meta {
        vertical-align: bottom;
      }
      #write > h5.md-focus:before {
        top: 2px;
      }

      .md-toc {
        margin-top: 40px;
      }

      .md-toc-content {
        padding-bottom: 20px;
      }

      .outline-expander:before {
        color: inherit;
        font-size: 14px;
        top: auto;
        content: '\f0da';
        font-family: FontAwesome;
      }

      .outline-expander:hover:before,
      .outline-item-open > .outline-item > .outline-expander:before {
        content: '\f0d7';
      }

      /** source code mode */
      #typora-source {
        font-family: Courier, monospace;
        color: #6a6a6a;
      }

      .html-for-mac #typora-sidebar {
        -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
      }

      .cm-s-typora-default .cm-header,
      .cm-s-typora-default .cm-property,
      .CodeMirror.cm-s-typora-default div.CodeMirror-cursor {
        color: #428bca;
      }

      .cm-s-typora-default .cm-atom,
      .cm-s-typora-default .cm-number {
        color: #777777;
      }

      .typora-node .file-list-item-parent-loc,
      .typora-node .file-list-item-time,
      .typora-node .file-list-item-summary {
        font-family: arial, sans-serif;
      }

      .md-task-list-item > input {
        margin-left: -1.3em;
        margin-top: calc(1rem - 12px);
      }

      .md-mathjax-midline {
        background: #fafafa;
      }

      .md-fences .code-tooltip {
        bottom: -2em !important;
      }

      .dropdown-menu .divider {
        border-color: #e5e5e5;
      }
    </style>
  </head>
  <body class="typora-export os-windows">
    <div id="write" class="is-node">
      <p><span>Free-Api</span></p>
      <h1>
        <a name="将提供一些免费的-api-接口随便使用" class="md-header-anchor"></a
        ><span>将提供一些免费的 api 接口，随便使用</span>
      </h1>
      <ul>
        <li><span>如果访问量大了，大家都会变满</span></li>
        <li><span>服务器只提供有限带宽</span></li>
      </ul>
      <h2>
        <a name="可用时间问题" class="md-header-anchor"></a
        ><span>可用时间问题</span>
      </h2>
      <ul>
        <li><span>从 2020 年起 1 年内是没有问题的，</span></li>
        <li><span>朋友借用的临时域名，未来会单独申请</span></li>
      </ul>
      <h2>
        <a name="框架基础" class="md-header-anchor"></a><span>框架基础</span>
      </h2>
      <ul>
        <li><span>github 上 meeko 和 skybase</span></li>
        <li>
          <a href="https://github.com/kongnet" target="_blank" class="url"
            >https://github.com/kongnet</a
          >
        </li>
      </ul>
      <figure>
        <table>
          <thead>
            <tr>
              <th><span>分类</span></th>
              <th><span>地址</span></th>
              <th><span>类型</span></th>
              <th><span>参数说明</span></th>
              <th><span>频度限制</span></th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td><span>教育</span></td>
              <td>
                <a href="/v1/today?isJson=1"><span>历史上的今天</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>isJson=1，没有返回 html，否则 json</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/img?size=100x100"><span>图片占位符</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>size=100x100，只返回 image</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/qrcode"><span>二维码</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>str=你的字符串，只返回 html</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>心灵</span></td>
              <td>
                <a href="/v1/getBing"><span>bing 每日</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>无，只返回 html</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>教育</span></td>
              <td>
                <a href="/v1/chem"><span>化学方程式配平</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>eqInput=配平前方程，只返回 json</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a
                  href="/v1/chartImg?chartJsonStr={%22type%22:%22bar%22,%22data%22:{%22labels%22:[%22Red%22,%22Blue%22,%22Yellow%22,%22Green%22,%22Purple%22,%22Orange%22],%22datasets%22:[{%22label%22:%22%E6%9D%A1%E7%8A%B6%E5%9B%BE%22,%22data%22:[29,19,3,5,2,13],%22backgroundColor%22:[%22rgba(255,%2099,%20132,%200.2)%22,%22rgba(54,%20162,%20235,%200.2)%22,%22rgba(255,%20206,%2086,%200.2)%22,%22rgba(75,%20192,%20192,%200.2)%22,%22rgba(153,%20102,%20255,%200.2)%22,%22rgba(255,%20159,%2064,%200.2)%22],%22borderColor%22:[%22rgba(255,%2099,%20132,%201)%22,%22rgba(54,%20162,%20235,%201)%22,%22rgba(255,%20206,%2086,%201)%22,%22rgba(75,%20192,%20192,%201)%22,%22rgba(153,%20102,%20255,%201)%22,%22rgba(255,%20159,%2064,%201)%22],%22borderWidth%22:1}]}}"
                  ><span>图表转图片</span></a
                >
              </td>
              <td><span>GET</span></td>
              <td><span>chartJsonStr=chart.js 对象定义，返回 jpg</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a
                  href='/v1/mock?mockJsonStr={"name":"@genName","str":"@genData(&#39;abcdefghijklmnopqrstuvwxyz&#39;,10)","datetime":"@genDatetime(&#39;2016-1-1&#39;,&#39;2016-2-2&#39;)","card":"@genCard","url":"@genUrl(5)","phoneNum":"@genPhone","color":"@genColor","colorRGBA":"@genColor(&#39;rgba&#39;)","ip":"@genIp","word":"@genWord(10)","word0":"@genWord","sentence":"@genText(20)","sentence20":"@genText(20)","sentence10":"@genText(10)","sentence0":"@genText","sentence1":"@genBeautyText","constellation":"@genConstellation"}'
                  ><span>Mock 数据</span></a
                >
              </td>
              <td><span>GET</span></td>
              <td><span>mockJsonStr=mock 的定义，只返回 json</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/checkPwd?pwdStr=123456"
                  ><span>不安全密码检测</span></a
                >
              </td>
              <td><span>GET</span></td>
              <td><span>pwdStr=123456，长度[2,20]，只返回 json</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/readQR"><span>二维码识别</span></a>
              </td>
              <td><span>GET/POST</span></td>
              <td>
                <span>qrStr=</span><strong><span>网址</span></strong
                ><span> 或 </span><strong><span>base64</span></strong
                ><span>，带 </span><strong><span>data:image</span></strong
                ><span> ， json</span>
              </td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/phone?phoneStr=13052000011"
                  ><span>手机归属地查询</span></a
                >
              </td>
              <td><span>GET</span></td>
              <td>
                <span>phoneStr=中国手机号码，长度[11,11]，只返回 json</span>
              </td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/ip?ipStr=8.8.8.8"><span>IP 地址查询</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>ipStr=8.8.8.8，只返回 json</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>教育</span></td>
              <td>
                <a href="/v1/trans?transStr=你好世界"
                  ><span>中英翻译(无法使用)</span></a
                >
              </td>
              <td><span>GET</span></td>
              <td>
                <span>transStr=，transType=</span
                ><strong><span>c2e</span></strong
                ><span> 或 e2c 只返回 json</span>
              </td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>企业</span></td>
              <td>
                <a href=""><span>企业名称速查</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>暂不公开</span>😄<span> 只返回 json</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/latlng?lat=39.9151612600&amp;lng=116.4039217800"
                  ><span>经纬度反查(中国境内)</span></a
                >
              </td>
              <td><span>GET</span></td>
              <td><span>latlngType=gd,否则认为是百度地图 只返回 json</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>信息</span></td>
              <td>
                <a href="/v1/coviHtml"
                  ><span>新冠 19 明细报告(无法使用)</span></a
                >
              </td>
              <td><span>GET</span></td>
              <td><span>displayType=desc 明细只返回 html</span></td>
              <td><span>无</span></td>
            </tr>
            <tr>
              <td><span>开发工具</span></td>
              <td>
                <a href="/v1/avatar?str=skykong"><span>字符串对应头像</span></a>
              </td>
              <td><span>GET</span></td>
              <td><span>str=skykong 只返回PNG</span></td>
              <td><span>无</span></td>
            </tr>
          </tbody>
        </table>
      </figure>
      <h2>
        <a name="特别用法说明" class="md-header-anchor"></a
        ><span>特别用法说明</span>
      </h2>
      <h4>
        <a name="化学方程式配平" class="md-header-anchor"></a
        ><span>化学方程式配平</span>
      </h4>
      <ul>
        <li>
          <span
            >eqInput 在浏览器地址栏，需要参数转义，例如
            C3H8+O2=CO2+H2O =&gt;C3H8%2BO2%3DCO2%2BH2O</span
          >
        </li>
        <li>
          <strong><span>+</span></strong
          ><span> =&gt; %2B </span><strong><span>=</span></strong
          ><span> =&gt; %3D</span>
        </li>
        <li><span>默认 O2+H2=H2O 配平</span></li>
        <li><span>离子键括号要展开,(OH)2 =&gt; O2H2</span></li>
      </ul>
      <h4>
        <a name="图表转图片" class="md-header-anchor"></a
        ><span>图表转图片</span>
      </h4>
      <ul>
        <li><span>chartJsonStr 是 chart.js 的数据定义</span></li>
        <li><span>接口返回一张 jpg 图片</span></li>
        <li><span>返回一般需要一些时间</span></li>
      </ul>
      <h4>
        <a name="不安全密码检测" class="md-header-anchor"></a
        ><span>不安全密码检测</span>
      </h4>
      <ul>
        <li><span>介意安全问题的，请不要调用此接口</span></li>
        <li><span>以往千万级库中，判定为不安全的密码</span></li>
        <li>
          <span
            >返回 level 1 极度不安全 2 不安全，1 周内可破解 3 较安全
            ，安不安全都是相对的</span
          >
        </li>
      </ul>
      <h4>
        <a name="二维码识别" class="md-header-anchor"></a
        ><span>二维码识别</span>
      </h4>
      <ul>
        <li><span>POST 方式</span></li>
        <li>
          <span>qrStr=</span
          ><a
            href="https://bkimg.cdn.bcebos.com/pic/2934349b033b5bb571dc8c5133d3d539b600bc12?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg"
            target="_blank"
            class="url"
            >https://bkimg.cdn.bcebos.com/pic/2934349b033b5bb571dc8c5133d3d539b600bc12?x-bce-process=image/resize,m_lfit,w_268,limit_1/format,f_jpg</a
          >
        </li>
      </ul>
      <h4>
        <a name="经纬度反查" class="md-header-anchor"></a
        ><span>经纬度反查</span>
      </h4>
      <ul>
        <li><span>本地库实现，查询性能达到 5000 次/秒</span></li>
        <li>
          <span
            >latlngType 参数默认 gd，否则认为是 baidu 坐标会转换成火星坐标</span
          >
        </li>
        <li>
          <span
            >使用 8 方向再查，判断最短距离，点位在 2 个区的边界处会有误差</span
          >
        </li>
      </ul>
      <h4>
        <a name="mock-数据" class="md-header-anchor"></a><span>mock 数据</span>
      </h4>
      <ul>
        <li><span>基础语法同 mock.js，本身扩展如下带有注解的函数</span></li>
      </ul>
      <pre
        spellcheck="false"
        class="md-fences md-end-block ty-contain-cm modeLoaded"
        lang="javascript"
        style="break-inside: unset"
      ><div class="CodeMirror cm-s-inner CodeMirror-wrap" lang="javascript"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 0px; left: 4px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;<span class="cm-string">'list|2-2'</span>: [</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-string cm-property">'id|+1'</span>: <span class="cm-number">100</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">name</span>: <span class="cm-string-2">`@genName`</span>,<span class="cm-comment">// 随机生成中文姓名,长度为2或3</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">str</span>: <span class="cm-string-2">`@genData('abcdefghijklmnopqrstuvwxyz',10)`</span>,<span class="cm-comment">// 随机生成长度为n的指定枚举字符串</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">datetime</span>: <span class="cm-string-2">`@genDatetime('2016-1-1','2016-2-2')`</span>,<span class="cm-comment">// 随机两个日期之间的某个日期</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">card</span>: <span class="cm-string-2">`@genCard`</span>,<span class="cm-comment">//随机生成中国身份证号码,符合检验规则</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">url</span>: <span class="cm-string-2">`@genUrl(5)`</span>,<span class="cm-comment">// 随机生成url</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">phoneNum</span>: <span class="cm-string-2">`@genPhone`</span>,<span class="cm-comment">// 随机生成中国手机号</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">color</span>: <span class="cm-string-2">`@genColor`</span>,<span class="cm-comment">// 随机生成颜色</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">colorRGBA</span>: <span class="cm-string-2">`@genColor('rgba')`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">ip</span>: <span class="cm-string-2">`@genIp`</span>,<span class="cm-comment">// 随机生成ip地址</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">word</span>: <span class="cm-string">'@genWord(10)'</span>,<span class="cm-comment">// 随机生成指定长度中文字</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">word0</span>: <span class="cm-string">'@genWord'</span>,<span class="cm-comment">// 随机生成1个中文字</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">sentence</span>: <span class="cm-string-2">`@genText(20)`</span>,<span class="cm-comment">// 随机生成指定长度文字段落</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">sentence20</span>: <span class="cm-string-2">`@genText(20)`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">sentence10</span>: <span class="cm-string-2">`@genText(10)`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">sentence0</span>: <span class="cm-string-2">`@genText`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">sentence1</span>: <span class="cm-string-2">`@genBeautyText`</span>,<span class="cm-comment">// 随机生成优美语句</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">constellation</span>: <span class="cm-string-2">`@genConstellation`</span>,<span class="cm-comment">// 随机生成星座</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">bool</span>: <span class="cm-string-2">`@genBool`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">genEnum1</span>: <span class="cm-string-2">`@genEnum(['5',6,7])`</span>,<span class="cm-comment">// 随机返回指定枚举</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">genEnum0</span>: <span class="cm-string-2">`@genEnum`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">genEnum2</span>: <span class="cm-string-2">`@genEnum(['5x','6x','7x'])`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">status</span>: <span class="cm-string-2">`@genEnum([[],null,''])`</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">skuCode</span>: <span class="cm-atom">null</span>,</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">arrList</span>: <span class="cm-string-2">`@genList(10)`</span>,<span class="cm-comment">// 返回指定数组长度数组，并按默认step1 自增</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-property">arrList2</span>: <span class="cm-string-2">`@genList(10,2)`</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">  ]</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 832px;"></div><div class="CodeMirror-gutters" style="display: none; height: 832px;"></div></div></div></pre>
      <ul>
        <li><span>将 json 变成字符串后，给 mockJsonStr 调用接口</span></li>
      </ul>
    </div>
  </body>
</html>
